From 39a2a444a32896bd2dab37c9b247ccfd11ff4693 Mon Sep 17 00:00:00 2001
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Mon, 30 Oct 2017 19:29:12 +0100
Subject: [PATCH] buildsystem: drop custom buildconf script, rely on autoreconf

The buildconf script is currently required, because we need to copy a
header around, because it is used both from the library and the examples
sources.

However, having a custom 'buildconf'-like script is not needed if we can
ensure that the header / exists by the time it is needed. For That, we
can just append the src/ directory to the headers search path for the
examples.

And then it means we no longer need to generate the same header twice,
so we remove the second one from configure.ac.

Now, we can just call "autoreconf -fi" to generate the autotools files,
instead of relying on the canned sequence in "buildconf", since
autoreconf has now long known what to do at the correct moment (future
versions of autotools, automake, autopoint, autoheader etc... may
require an other ordering, or other intermediate steps, etc...).

Eventually, get rid of buildconf now it is no longer needed. In fact, we
really keep it for legacy, but have it just call autoreconf (and print a
nice user-friendly warning).

Update gitignore accordingly, too.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Sam Voss <sam.voss@rockwellcollins.com>
---
 .gitignore          |  2 ++
 buildconf           | 24 +++++-------------------
 configure.ac        |  2 +-
 example/.gitignore  |  2 --
 example/Makefile.am |  2 +-
 5 files changed, 9 insertions(+), 23 deletions(-)

diff --git a/.gitignore b/.gitignore
index 997e51e1..b6d6b5cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,8 @@ Makefile
 Makefile.in
 aclocal.m4
 autom4te.cache
+compile
+test-driver
 config.guess
 config.log
 config.status
diff --git a/buildconf b/buildconf
index 558dcb66..728b3397 100755
--- a/buildconf
+++ b/buildconf
@@ -1,22 +1,8 @@
 #!/bin/sh
 
-LIBTOOLIZE="libtoolize"
+echo "***" >&2
+echo "*** Do not use buildconf. Instead, just use: autoreconf -fi" >&2
+echo "*** Doing it for you now, but buildconf may disapear in the future." >&2
+echo "***" >&2
 
-if [ "x`which $LIBTOOLIZE`" = "x" ]; then
-    LIBTOOLIZE="glibtoolize"
-fi
-
-if [ "x`which $LIBTOOLIZE`" = "x" ]; then
-    echo "Neither libtoolize nor glibtoolize could be found!"
-    exit 1
-fi
-
-${LIBTOOLIZE} --copy --automake --force
-${ACLOCAL:-aclocal} -I m4 $ACLOCAL_FLAGS
-${AUTOHEADER:-autoheader}
-# copy the private libssh2_config.h.in to the examples dir so that
-# it can be included without pointing the include path to the private
-# source dir
-cp src/libssh2_config.h.in example/libssh2_config.h.in
-${AUTOCONF:-autoconf}
-${AUTOMAKE:-automake} --add-missing --copy
+${AUTORECONF:-autoreconf} -fi "${@}"
diff --git a/configure.ac b/configure.ac
index c6ff7535..6939d0d6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 AC_INIT(libssh2, [-], libssh2-devel@cool.haxx.se)
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_SRCDIR([src])
-AC_CONFIG_HEADERS([src/libssh2_config.h example/libssh2_config.h])
+AC_CONFIG_HEADERS([src/libssh2_config.h])
 AM_MAINTAINER_MODE
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
diff --git a/example/.gitignore b/example/.gitignore
index 13448191..cac152b8 100644
--- a/example/.gitignore
+++ b/example/.gitignore
@@ -20,8 +20,6 @@ sftp_write_nonblock
 config.h.in
 ssh2_exec
 ssh2_agent
-libssh2_config.h
-libssh2_config.h.in
 stamp-h2
 sftp_append
 sftp_write_sliding
diff --git a/example/Makefile.am b/example/Makefile.am
index 5cf5f071..41f65b12 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -13,5 +13,5 @@ if HAVE_SYS_UN_H
 noinst_PROGRAMS += x11
 endif
 
-AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/example
+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/example -I../src
 LDADD = $(top_builddir)/src/libssh2.la
